A computer is a programmable machine that receives input, stores and manipulates data, and provides output in a useful format. Computers can be found in a huge number of devices that could not realistically be exhaustively listed, including by way of example personal computers (PCs), smart phones, game consoles, web servers, personal data assistants (PDAs), automobiles, etc. Nearly all modern computers implement some form of stored-program architecture, which is the single trait by which computers are now defined.
In the 1960's libraries of common programs were stored on computers to increase efficiency when programs were run in succession. Eventually, computers were able to automatically switch between tasks, and runtime libraries were created to manage processing and printing speed. These and other features are now referred to as the operating system (OS). Common features for OSs include process management, interrupts, memory management, virtual file systems, device drivers, networking, security, and graphical user interfaces.
Computers that are capable of running multiple programs typically include an OS. The main purpose of the OS is to manage the way the programs use the hardware, and regulates the way that a user controls the computer. Some popular OSs for PCs include Microsoft Windows, Mac OS X, and Linux, but there are a great many others. The central component of most OSs is the kernel, which is a bridge between programs and data processing done at the hardware level. The kernel can provide the lowest-level abstraction layer for computer resources, especially processors and I/O devices, that programs need to perform their function.
It is possible to use multiple OSs on a single computer by changing the boot loader to allow a user to select the operating system they want to run at boot time. However rebooting is slow. It is also possible to use multiple OSs on a single computer by using virtualization to run multiple guest operating systems on top of a single host operating system. However, virtualization does not generally allow each OS direct access to hardware devices, which can reduce performance, particularly for programs that require direct access to high speed peripherals, such as games.
The foregoing examples of the related art and limitations related therewith are intended to be illustrative and not exclusive. Other limitations of the related art will become apparent upon a reading of the specification and a study of the drawings.